Las Reliquias de Tolti Aph

An interactive fiction by Graham Nelson (2005) - the Inform 7 source text

Home page

Contents
Previous
Next

Complete text
Section E(h) - Gastando el laberinto y recuperando habitaciones

[ De Terra Incognita se dice que está "abierta" si aún quedan habitaciones del laberinto por descubrir, y "cerrada" si todas han sido jugadas, de forma que el laberinto ha sido gastado.]

Terra Incognita can be open or closed. Terra Incognita is open.

[ Cuando el laberinto ha sido gastado, ocurre a veces que varias de las habitaciones jugadas jamás han sido visitadas. Si un jugador trata de ir al este hasta Terra Incognita, por decirlo de alguna manera, una nueva habitación es colocada en la posición adecuada de la cuadrícula. Si esta nueva habitación tiene una salida de vuelta al oeste, todo está bien. Si no, el jugador es bloqueado, y la conexión original del mapa cambia a Solid Rock. Pero la nueva habitación no es quitada del tablero: en vez de eso, espera a que el laberinto la descubra desde el otro lado. (Dichas habitaciones se jugaban con una carta boca abajo en el juego original de tablero.) Pero, ¿que pasa si el jugador nunca descubre otra forma de entrar? Quedarían sin visitar para siempre.

Excepto que no, porque vamos a seguir una llamada procedural recuperando este tipo de habitaciones, metiéndolas en la baraja para posterior uso si la baraja llega a agotarse. Nota que los Alrededores del Lago Profundo ("Deep Pool Environs") están fijos: esas habitaciones se quedan en su sitio tanto si son visitadas como sino.]

Definition: A labyrinth room is retrievable if it is unvisited and it is not in the Deep Pool Environs.

To re-plumb (place - a room) to (way - a direction):
    let the connection be the room way from the place;
    if the connection is a retrievable labyrinth room, change the way exit of the place to Terra Incognita.

To retrieve inaccessible labyrinth rooms:
    repeat with maze area running through retrievable labyrinth rooms
    begin;
        re-plumb the maze area to north;
        re-plumb the maze area to east;
        re-plumb the maze area to south;
        re-plumb the maze area to west;
        re-plumb the maze area to up;
        re-plumb the maze area to down;
        change the grid position of the maze area to <0,0,0>;
    end repeat.